Since the introduction of the IBM System/360, nearly all large and intermediate system direct access storage devices (DASD) have used a count-key-data (CKD) track format. The devices respond to a common set of CKD procedural commands used to read and write data to and from the devices.
Certain CKD channel programs have been designed specifically for synchronous operation. Under the CKD commands, the devices and their storage controllers operate synchronously with the system channel. Channel data transfer for each search, read, or write command occurs as the target data field passes the read/write head on the device. The CKD commands depend on this synchronous mode of operation.
Under the synchronous mode of operation, all channel and storage controller activity required to end the execution of one command and initiate the execution of the next must be completed within the gap between two adjunct fields. If the synchronism is not maintained, many channel programs could suffer performance degradation. A write operation is one such channel program.
Channel programs that perform write operations depend on synchronous operations. All write commands must be preceded by a successful search operation and the write command is not sent to the storage controller until the storage controller reports completion of the search operation. Therefore, the completion of the search, the reporting of the outcome to the channel, the receipt of the next command from the channel, and the interpretation of the command, must all occur between the end of the current recording field and the start of the next recorded field.
Geometry dependent channel programs depend on synchronous operation between the channel and the devices. Geometry dependent channel programs are those that assume some vertical alignment of the records and the tracks in a cylinder of the device, and those that employ special technology to process records in a preferred sequence, such as switching from one track to another. Frequently, such programs inserted small filler records between real data records. This was done to effectively increase the size of the inter-record gaps enough to allow the command to be executed between successive commands without requiring an extra revolution of the disk device, for instance. The required size of the filler record typically changes with changes in device types and generally varies as a function of the storage controller. The size of the data records can be selected such that data records themselves function as the filler records, thereby not sacrificing track capacity to the filler records. The selection of data and filler record sizes depends upon an assumption of synchronous operation and may even require program modifications whenever there is a change in device or storage controller operational characteristics.
If the channel programs and the devices cannot operate synchronously, such as when the cable length delays are too long and the inter-record gaps are too short, the performance of the CKD channel programs are effected. The relay time of the channel program reading one or more consecutive records is extended by the amount by which the channel lags behind the device. Channel programs writing one or more records generally incur a delay of one device rotation for each record written. Channel programs updating multiple records lose one revolution for each write command, because each update write command must be preceded by a successful search. Geometry-dependent channel programs tend to incur a delay of one device rotation for each seek or seekhead command in the channel program. A filler record that is just large enough to allow a seek operation in a synchronous environment is not large enough to accommodate both the time required to complete the seek and the amount by which the channel lags behind the device. Adjusting the size of the filler record does not solve the problem, because the amount of lag is not consistent and can not be predicted.
Tape and disk devices are generally controlled by the channels through the use of channel programs which were executed in synchronism with the device. That is, as the fields recorded on the tracks of the devices passed the read/write element of the head, the specific channel programmed commands operating on those fields were executed in real time. This implied certain minimum speed requirements on the channel. For instance, the channel data rate capability must be at least as great as the device data rate. Further, during the inter-field gap between fields of data, it must be possible to signal to the channel at the end of the operation on a given field and also retrieve the command for the next field in time to operate on that field.
At the end of a disconnect period in which the head element is being oriented to the correct track and position on the track for a direct access disk device, it must be possible to reestablish a connection to the channel in time to process the record of entry.
These requirements were not always met, for instance, when the time required to communicate with the channel is increased. This occurs when the channel distance between the device and the CPU is increased. Also, there is an incentive to maximize the capacity of the devices by keeping the inter-field gaps as small as possible. This operates against the increase in channel time because the available time in the inter-field gap is decreased. If this occurs, it may be impossible to, accomplish the command turn around during the inter-field gap time.
Another reason for the requirements of a synchronous channel program is that the utilization of the channels has been increased by the addition of more tape and especially disk devices. It has become increasingly difficult for any device to acquire a channel connection to the CPU in time to process a record following a rotational positioning of the transducer over the disk device. Further, the advancing stages of the device technology has brought into existence devices in which the data rate exceeds that of some currently available channels. The channels have not been able to keep pace with the advancing data rate of the devices.
It is, therefore, an object of the present invention to provide a non-gap synchronous function.
Synchronous channels must meet critical channel response times for the controller and the attached tape and disk devices. Withdrawn interrupts, lost revolutions, command overruns and data overruns will occur if the channel does not respond with its connection commands within the maximum allowable time interval.
It is, therefore, another object of the present invention to remove these channel response time requirements by providing a dynamic polling operation.
Formerly, the synchronous input/output controllers held a channel-request-in signal on the interface for a period of time necessary to insure that the request-in signal was detected by the channel and a connect was accomplished or dropped as being beyond an aging period. This did not seriously effect the performance of the controller. The nonsynchronous I/O controllers support channel connection time is approximately 10 times that of the synchronous controllers. The holding up of other work during the time the poll is made and the actual connection is accomplished can seriously affect performance.
It is, therefore, an object of the present invention to provide an enhanced dynamic polling of a nonsynchronous channel.